Leetcode #2. Add Two Numbers
簡單來說就是要做兩個鏈結的加總
ex.1
Input: list 1: 2->4->3, list 2: 5->6->4
Output: [7,0,8]
342 + 465 = 807 (個位數在鏈結的最左邊)
如果你沒做過這題,強烈建議你先思考一下怎麼解。
防雷 
防雷 
防雷 
這一題主要讓你熟悉鏈結的操作,只要搞懂了鏈結,花點時間就可以寫出來。
只要每一次加總,處理一下進位,應該就可以解決了,時間複雜度為O(n)
程式:
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
	node := &ListNode{}
	temp := node
	curry := 0 // 記錄有沒有進位
	for {
        // 兩個鏈結長度可能不一樣,只要一邊有東西,還是要加總下去
		if l1 == nil && l2 == nil {
			break
		}
		num := 0
		if l1 != nil {
			num += l1.Val
			l1 = l1.Next
		}
		if l2 != nil {
			num += l2.Val
			l2 = l2.Next
		}
        // 判斷進位
		num += curry
		if num >= 10 {
			num = num % 10
			curry = 1
		} else {
			curry = 0
		}
		temp.Next = &ListNode{
			Val: num,
		}
		temp = temp.Next
	}
	if curry == 1 {
		temp.Next = &ListNode{
			Val: 1,
		}
	}
	return node.Next
}
明天來講Queue & Stack!